ifndef QCONFIG
QCONFIG=qconfig.mk
endif
include $(QCONFIG)

SOURCE_DIR = ../dlt-daemon

LOGGING_LEVEL_ORIGINAL='<LoggingLevel_Placeholder>'
LOGGING_LEVEL_DEBUG='6'
LOGGING_LEVEL_USER='3'
LOGGING_LEVEL_PRODUCTION='2'

CONTEXT_LOG_LEVEL_ORIGINAL='<ContextLogLevel_Placeholder>'
CONTEXT_LOG_LEVEL_DEBUG='5'
CONTEXT_LOG_LEVEL_USER='4'
CONTEXT_LOG_LEVEL_PRODUCTION='4'

.PHONY: all
all:
	cmake -Baarch64le-nto-build -H${SOURCE_DIR} \
		-DCMAKE_TOOLCHAIN_FILE=$(shell pwd)/aarch64le-nto-toolchain.cmake \
		-DWITH_FEATURE_FLAG="$(CCFLAGS)" \
		-DDLT_INSTALL_PREFIX=/usr \
		-DCONFIGURATION_FILES_DIR=/etc \
		-DDLT_INSTALL_LIBDIR=/lib64 \
		-DDLT_IPC=UNIX_SOCKET \
		-DWITH_DLT_ADAPTOR=ON \
		-DWITH_DLT_DBUS=OFF \
		-DWITH_DLT_KPI=OFF \
		-DWITH_DLT_MONITOR=OFF \
		-DWITH_DLT_QNX_SYSTEM=ON \
		-DWITH_DLT_CXX11_EXT=ON \
		-DWITH_DLT_SYSTEM=OFF \
		-DWITH_DLT_USE_IPv6=OFF \
		-DCMAKE_BUILD_TYPE=RelWithDebInfo \
		-DCMAKE_EXPORT_COMPILE_COMMANDS=ON \
		-DWITH_MAN=OFF \
		-DWITH_LIB_SHORT_VERSION=ON \
		-DWITH_DLT_TRACE_LOAD_CTRL=ON \
		-DWITH_DLT_LOG_STATISTIC=ON
	cmake --build aarch64le-nto-build

.PHONY: install
install: all
	DESTDIR=${INSTALL_ROOT_nto}/aarch64le \
			cmake -DCOMPONENT=base -P aarch64le-nto-build/cmake_install.cmake
	DESTDIR=${INSTALL_ROOT_nto} \
			cmake -DCOMPONENT=devel -P aarch64le-nto-build/cmake_install.cmake
	filepp -D$(PRODUCT_NAME) \
		-o ${INSTALL_ROOT_nto}/aarch64le/etc/dlt_gateway.conf etc/qnx/dlt_gateway.conf.in
	mkdir -p ${INSTALL_ROOT_nto}/aarch64le/etc/system/config/dlt
	filepp -imacros $(GM_FEATURE_CONFIG) -I$(GM_BSP_ROOT) \
		-o ${INSTALL_ROOT_nto}/aarch64le/etc/system/config/dlt/dlt_logstorage.conf \
		etc/qnx/dlt_logstorage.conf.in
	filepp -imacros $(GM_FEATURE_CONFIG) -I$(GM_BSP_ROOT) \
		-o ${INSTALL_ROOT_nto}/aarch64le/etc/system/config/dlt/dlt_logstorage_recovery.conf \
		etc/qnx/dlt_logstorage_recovery.conf.in
	filepp -imacros $(GM_FEATURE_CONFIG) -I$(GM_BSP_ROOT) \
        -o ${INSTALL_ROOT_nto}/aarch64le/etc/system/config/dlt/dlt_logstorage_shutdown.conf \
        etc/qnx/dlt_logstorage_shutdown.conf.in
ifeq ($(GM_P_TARGET_BUILD_VARIANT),user)
ifeq ($(SECURE_BOOT),true)
	filepp -D$(LOGGING_LEVEL_ORIGINAL)=$(LOGGING_LEVEL_PRODUCTION) \
		-D$(CONTEXT_LOG_LEVEL_ORIGINAL)=$(CONTEXT_LOG_LEVEL_PRODUCTION) \
		-o ${INSTALL_ROOT_nto}/aarch64le/etc/dlt.conf etc/qnx/dlt.conf.in
else
	filepp -D$(LOGGING_LEVEL_ORIGINAL)=$(LOGGING_LEVEL_USER) \
                -D$(CONTEXT_LOG_LEVEL_ORIGINAL)=$(CONTEXT_LOG_LEVEL_USER) \
                -o ${INSTALL_ROOT_nto}/aarch64le/etc/dlt.conf etc/qnx/dlt.conf.in
endif
else
	filepp -D$(LOGGING_LEVEL_ORIGINAL)=$(LOGGING_LEVEL_DEBUG) \
                -D$(CONTEXT_LOG_LEVEL_ORIGINAL)=$(CONTEXT_LOG_LEVEL_DEBUG) \
                -o ${INSTALL_ROOT_nto}/aarch64le/etc/dlt.conf etc/qnx/dlt.conf.in
endif
	cp etc/qnx/dlt.conf.recovery ${INSTALL_ROOT_nto}/aarch64le/etc/
	cp etc/qnx/dlt_message_filter.conf ${INSTALL_ROOT_nto}/aarch64le/etc/
	cp etc/qnx/dlt-qnx-system.conf ${INSTALL_ROOT_nto}/aarch64le/etc/
	cp etc/qnx/dlt-trace-load.conf ${INSTALL_ROOT_nto}/aarch64le/etc/
	cp etc/qnx/dlt-slog2ctxt.json ${INSTALL_ROOT_nto}/aarch64le/etc/
	mkdir -p ${INSTALL_ROOT_nto}/aarch64le/etc/system/config/slm
	cp slm-fragments/SLMdlt-daemon.xml ${INSTALL_ROOT_nto}/aarch64le/etc/system/config/slm/
	cp slm-fragments/SLMdlt-daemon_recovery.xml ${INSTALL_ROOT_nto}/aarch64le/etc/system/config/slm/
	filepp -D$(SLM_SECPOL) \
		-o ${INSTALL_ROOT_nto}/aarch64le/etc/system/config/slm/SLMdlt-qnx-system.xml \
		slm-fragments/SLMdlt-qnx-system.xml

.PHONY: clean
clean:
	rm -rf aarch64le-nto-build
